package com.momchil_and_marin.javanet.bll;

/**
 * This interface represents a user.
 */
public interface User {

	/**
	 * Returns the username of the user.
	 * @return user's username.
	 */
	public String getUsername();
	
	/**
	 * Returns the password of the user.
	 * <p>
	 * <strong>Note:</code> this method would most
	 * likely return <code>null</code> in most cases.
	 * <br>
	 * It should only be used to provide password data
	 * to a service and the opposite.
	 * @return user's password
	 */
	public String getPassword();
	
	/**
	 * Returns the first name of the user.
	 * <p>
	 * The returned value may be <code>null</code>.
	 * @return user's first name
	 */
	public String getFirstName();
	
	/**
	 * Returns the last name of the user.
	 * <p>
	 * The returned value may be <code>null</code>.
	 * @return user's last name.
	 */
	public String getLastName();
	
	/**
	 * Returns the e-mail of the user.
	 * @return user's e-mail.
	 */
	public String getEmail();

}
